The present disclosure relates generally to information handling systems, and more particularly to a congestion notification system for information handling systems.
As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Information handling systems such as, for example, client devices and server devices, are typically connected together through a network provided by networking devices to allow those client devices and server devices to communicate. However, when many client devices and server devices are communicating using the network, congestion at one or more of the networking device can occur. Mechanisms for dealing with such congestion have been provided to reduce communication transmission losses due to such congestion. For example, Explicit Congestion Notification (ECN), defined by Request for Comment (RFC) 3168, is an extension to the Internet Protocol and the Transmission Control Protocol that attempts to address the congestion issues discussed above.
In ECN capable systems, when an intermediate switch or router that connects the client device to the server device in the network experiences congestion, that intermediate switch or router will set a Congestion Encountered (CE) bit in a packet received from the client device, and will then forward that packet to the server device. In response to receiving a packet with the CE bit set, the server device will then set an ECN echo bit in the subsequent Transmission Control Protocol (TCP) acknowledgement (ACK), and send that TCP ACK to the client device. When the client device receives the TCP ACK with the ECN echo bit set, the client device will reduce the data transmission window size and packet transmission rate, set a Congestion Window Reduced (CWR) bit in the subsequent packet, and send that packet to the server device. The reduction of the data transmission window size and packet transmission rate reduces the amount of data that is sent by the client device in attempt to reduce congestion in the network caused by that client device. However, in such conventional congestion notification systems, packets may be dropped due to congestion between the time the intermediate switch or router sends the packet with the CE bit set to the server device, and the time the client device reduces the data transmission window size and packet transmission rate in response to receiving the TCP ACK with the ECN echo bit set. Such congestion related packet dropping can be exacerbated if the packet with the CE bit set or the TCP ACK with the ECN echo bit set are dropped, as in such cases the client device must wait for a timeout to be notified of a problem with communication transmission.
Accordingly, it would be desirable to provide an improved congestion notification system.